﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Manage_Pupils
{
    public partial class FormThemHSTuExcel : Form
    {
        public FormThemHSTuExcel()
        {
            InitializeComponent();
            buttonBrowser.Click += new EventHandler(buttonBrowser_Click);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
            FormCapNhatHS fr = new FormCapNhatHS();
            fr.Show();
        }

        private void FormThemHSTuExcel_Load(object sender, EventArgs e)
        {

        }

        private void buttonBrowser_Click(object sender, EventArgs e)
        {
            // Browse đến file cần import
            OpenFileDialog ofd = new OpenFileDialog();
            // Lấy đường dẫn file import vừa chọn
            textFilePath.Text = ofd.ShowDialog() == DialogResult.OK ? ofd.FileName : "";
        }

        private void buttonThem_Click(object sender, EventArgs e)
        {
            if (!ValidInput())
                return;

            // Đọc dữ liệu từ tập tin excel trả về DataTable
            DataTable data = ReadDataFromExcelFile();

            // Import dữ liệu đọc được vào database
            //ImportIntoDatabase(data);

            // Lấy hết dữ liệu import từ database hiển thị lên gridView
            //ShowData();
        }

        private bool ValidInput()
        {
            if (textFilePath.Text.Trim() == "")
            {
                MessageBox.Show("Xin vui lòng chọn tập tin excel cần import");
                return false;
            }
            return true;
        }
        private DataTable ReadDataFromExcelFile()
        {
            string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + textFilePath.Text.Trim() + ";Extended Properties=Excel 8.0";
            // Tạo đối tượng kết nối
            OleDbConnection oledbConn = new OleDbConnection(connectionString);
            DataTable data = null;
            try
            {
                // Mở kết nối
                oledbConn.Open();

                // Tạo đối tượng OleDBCommand và query data từ sheet có tên "Sheet1"
                OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);

                // Tạo đối tượng OleDbDataAdapter để thực thi việc query lấy dữ liệu từ tập tin excel
                OleDbDataAdapter oleda = new OleDbDataAdapter();

                oleda.SelectCommand = cmd;

                // Tạo đối tượng DataSet để hứng dữ liệu từ tập tin excel
                DataSet ds = new DataSet();

                // Đổ đữ liệu từ tập excel vào DataSet
                oleda.Fill(ds);

                data = ds.Tables[0];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                // Đóng chuỗi kết nối
                oledbConn.Close();
            }
            return data;
        }

      /*  private void ImportIntoDatabase(DataTable data)
        {
            if (data == null || data.Rows.Count == 0)
            {
                MessageBox.Show("Không có dữ liệu để import");
                return;
            }

            HumanResourceTableAdapters.EmployeeInfoTableAdapter adapter = new HumanResourceTableAdapters.EmployeeInfoTableAdapter();
            string code = "", fullName = "";
            int workingYears = 0;
            try
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    code = data.Rows[i]["Code"].ToString().Trim();
                    fullName = data.Rows[i]["FullName"].ToString().Trim();
                    workingYears = int.Parse(data.Rows[i]["WorkingYears"].ToString().Trim());
                    HumanResource.EmployeeInfoDataTable existingEmployee = adapter.GetEmployeeInfoByCode(code);
                    // Nếu nhân viên chưa tồn tại trong DB thì thêm mới
                    if (existingEmployee == null || existingEmployee.Rows.Count == 0)
                    {
                        adapter.InsertEmployee(code, fullName, workingYears);
                    }
                    // Ngược lại, nhân viên đã tồn tại trong DB thì update
                    else
                    {
                        adapter.UpdateEmployeeInfoByCode(fullName, workingYears, code);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            MessageBox.Show("Kết thúc import");
        }

        private void ShowData()
        {
            HumanResourceTableAdapters.EmployeeInfoTableAdapter adapter = new HumanResourceTableAdapters.EmployeeInfoTableAdapter();
            dgvData.DataSource = adapter.GetData();
        }*/
    }
}
